]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shellDBus: Use MetaContext:unsafe-mode to restrict Eval()
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 16 Jun 2021 23:50:50 +0000 (01:50 +0200)
committerMarge Bot <marge-bot@gnome.org>
Fri, 3 Sep 2021 21:34:58 +0000 (21:34 +0000)
The Eval() method is unarguably the most sensitive D-Bus method
we expose, since it allows running arbitrary code in the compositor.

It is currently tied to the `development-tools` settings that is
enabled by default. As users have become accustomed to the built-in
commands that are enabled by the same setting (restart, lg, ...),
that default cannot easily be changed.

In order to restrict the method without affecting the rather harmless
commands, guard it by the new MetaContext:unsafe-mode property instead
of the setting.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3943

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970>

js/ui/shellDBus.js

index 6574cc5288a897df9efb437be359c5eb139d424c..2f21ba41d726b9de83c6ac3247b020cd3f986054 100644 (file)
@@ -54,7 +54,7 @@ var GnomeShell = class {
      *
      */
     Eval(code) {
-        if (!global.settings.get_boolean('development-tools'))
+        if (!global.context.unsafe_mode)
             return [false, ''];
 
         let returnValue;